using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Styx.Helpers;
using System.IO;
using Styx;
using Styx.Common;
using System.ComponentModel;
using DefaultValue = Styx.Helpers.DefaultValueAttribute;
using Styx.TreeSharp;

namespace NuckChorris
{
    public class NuckChorrisSettings : Settings
    {
        public static readonly NuckChorrisSettings myPrefs = new NuckChorrisSettings();
        public NuckChorrisSettings()
            : base(Path.Combine(Utilities.AssemblyDirectory, string.Format(@"Config/Pasterke/NuckChorris/{0}-{1}-MonkWindwalker.xml", StyxWoW.Me.RealmName, StyxWoW.Me.Name)))
        {
        }
        [Setting, DefaultValue(false)]
        public bool DisableAllMovement { get; set; }

        [Setting, DefaultValue(false)]
        public bool DisableFacing { get; set; }

        [Setting, DefaultValue(false)]
        public bool DisableTargetting { get; set; }

        [Setting, DefaultValue(true)]
        public bool UseInterrupt { get; set; }

        [Setting, DefaultValue(20)]
        public int NoTouchOfDeath { get; set; }

        [Setting, DefaultValue(25)]
        public int NoFistsOfFury { get; set; }

        [Setting, DefaultValue(3)]
        public int UseAoe { get; set; }

        [Setting, DefaultValue(65)]
        public int DrinkEat { get; set; }

        [Setting, DefaultValue(5000000)]
        public int LikeBosses { get; set; }

        [Setting, DefaultValue(30)]
        public int FortBrew { get; set; }

        [Setting, DefaultValue(50)]
        public int ExpelHarm { get; set; }

        [Setting, DefaultValue(true)]
        public bool agibuff { get; set; }

        [Setting, DefaultValue(true)]
        public bool critbuff { get; set; }

        [Setting, DefaultValue(true)]
        public bool Xuen { get; set; }

        [Setting, DefaultValue(3)]
        public int ElitesNotInParty { get; set; }

        [Setting, DefaultValue(15)]
        public int NoTigereyeBrew { get; set; }

        [Setting, DefaultValue(35)]
        public int UseTouchOfKarma { get; set; }

        [Setting, DefaultValue(true)]
        public bool Trinket1 { get; set; }

        [Setting, DefaultValue(true)]
        public bool Trinket2 { get; set; }

        [Setting, DefaultValue(true)]
        public bool UseEngiGloves { get; set; }

        [Setting, DefaultValue(true)]
        public bool UseEngiBelt { get; set; }

        [Setting, DefaultValue(true)]
        public bool TrinketWithTigereyeBrew { get; set; }

        [Setting, DefaultValue(true)]
        public bool EngiGlovesWithTigereyeBrew { get; set; }

        [Setting, DefaultValue(65)]
        public int EngiBeltHealth { get; set; }

        [Setting, DefaultValue(false)]
        public bool GlyphTouchOfDeath { get; set; }

        [Setting, DefaultValue(false)]
        public bool AlchFlask { get; set; }

        [Setting, DefaultValue(false)]
        public bool VirmenPotion { get; set; }

        [Setting, DefaultValue(false)]
        public bool AgiFlask { get; set; }

        [Setting, DefaultValue(65)]
        public int healthstone { get; set; }

        [Setting, DefaultValue(75)]
        public int LifeSpirit { get; set; }

        [Setting, DefaultValue(35)]
        public int HealthPotion { get; set; }

        [Setting, DefaultValue(65)]
        public int GiftOfNaruu { get; set; }

        [Setting, DefaultValue(0)]
        public int Mtrinket1 { get; set; }

        [Setting, DefaultValue(0)]
        public int Mtrinket2 { get; set; }

        [Setting, DefaultValue(0)]
        public int MEngiGloves { get; set; }

        [Setting, DefaultValue(0)]
        public int HEngiBelt { get; set; }

        [Setting, DefaultValue(0)]
        public int HHealthPotions { get; set; }

        [Setting, DefaultValue(1)]
        public int HHealthstone { get; set; }

        [Setting, DefaultValue(0)]
        public int HNaruu { get; set; }

        [Setting, DefaultValue(0)]
        public int HLifeblood { get; set; }

        [Setting, DefaultValue(0)]
        public int HLifeSpirit { get; set; }

        [Setting, DefaultValue(0)]
        public int GTouchDeath { get; set; }

        [Setting, DefaultValue(10)]
        public int TEBStacks { get; set; }

        [Setting, DefaultValue(0)]
        public int PauseKey { get; set; }

        public enum Keypress
        {
            None,
            RSHIFT,
            LSHIFT,
            LCTRL,
            RCTRL,
            LALT,
            RALT
        };

        [Setting, DefaultValue(Keypress.None)]
        public Keypress PauseKeys { get; set; }

        [Setting, DefaultValue(true)]
        public bool PrintMsg { get; set; }

        [Setting, DefaultValue(1)]
        public int HealingSpheres { get; set; }

        [Setting, DefaultValue(55)]
        public int HealingSpheresPercent { get; set; }

    }
}
